사이트 내 전체검색
PHP
[php] 파일 다운로드 속도 제한
로빈아빠
https://cmd.kr/php/473 URL이 복사되었습니다.

본문

파일 다운로드 속도 제한

자원을 골고루 나눠 줄수 있는 방법인것 같습니다.

fread ( int fp, int length)
버      전: PHP 3, PHP 4
기      능:  Binary-safe 파일 읽기
설      명:  fread()는 fp에 의해 참조가 되는 파일 포인터로부터 length를 바이트로 증가시키며 읽습니다. length바이트가 읽혔거나 파일의 끝에 도달되거나 둘중에 먼저 끝나는 것이 있으면 읽기가 종료됩니다.

// 파일의 내용을 문자열로 가져오기
$filename = "/usr/local/something.txt";
$fd = fopen ($filename, "r");
$contents = fread ($fd, 파일의크기 ($filename));
fclose ($fd);


float round ( float val [, int precision])
버      전: PHP 3, PHP 4
기      능: 실수를 반올림합니다.
설      명: 주어진 val값의 반올림한 값을 주어진 돌려준다.
precision이 있을 경우 소수점 다음 precision 자리수 까지 돌려준다.

참고: precision 는 PHP 4 에서만 유용하다.

$foo = round(3.4);  // $foo == 3.0
$foo = round(3.5);  // $foo == 4.0
$foo = round(3.6);  // $foo == 4.0
$foo = round(3.6, 0);  // $foo == 4

$foo = round(1.95583, 2);  // $foo == 1.96

$foo = round(1241757, -3);  // $foo == 1242000



브라우즈에서 실시간으로 음악을 다운로드 받는 간단한 예제
출처: http://phpschool.com/bbs2/inc_view.html?id=9957&code=tnt2

<?php 

$file = "test.mp3"; // 파일을 클라이언트가 받는다. 
$speed = 8.5; // 8,5 kb/s 비율로 다운로드를 받는다. 

if(file_exists($file) && is_file($file)) { 
   header("Cache-control: private"); 
   header("Content-Type: audio/mp3"); 
   header("Content-Length: ".filesize($file)); 
   header("Content-Disposition: filename={$file}"); 
   flush(); 

   $fp = fopen($file, "r"); 
   while(!feof($fp)) { 
         echo fread($fp, round($speed*1024)); 
       flush(); 
       sleep(1); 
   } 
   fclose ($fp); 
} 
?>

댓글목록

등록된 댓글이 없습니다.

PHP
871 (10/18P)

Search

Copyright © Cmd 명령어 3.19.58.30